{{ h.title }}
{{ h.text }}
{{ h.code }}
fix deployed [ok]
{{ qTitle }}
Python · Санкт-Петербург · dukhovskoj.ru
В каждом работающем продукте есть дух. Его пишу я.
Dukh means “spirit” in Russian. Yes, it's in my name.
Начинал с приложений для игр. Теперь пишу код для вашего бизнеса.
Листайте вниз
Боты, которые не теряют заявки.
Сайты и автоматизация.
Ищу дыры раньше других.
{{ secCounter }}
POST /api/order
{{ inspJson }}
{{ h.text }}
{{ h.code }}
fix deployed [ok]
ИИ, но с инженерной головой.
{{ planHeading }}
Скорость студии, качество инженера.
Учусь в СПбПУ Петра Великого, ИКНиК, «Математика и компьютерные науки». Траектория — архитектор ИИ / ML-инженер.
Одна HTML-страница и ES-модули с CDN, без фреймворка и сборки.
| Метрика | Бюджет |
|---|---|
| LCP — имя в первом экране | ≤ 1,8 с |
| CLS | ≤ 0,03 |
| INP | ≤ 150 мс |
| Начальный JS | ≤ 60 КБ gz |
| 3D-чанк | ≤ 270 КБ gz |
| Вызовы отрисовки | ≤ 30 |
| Кадры в секунду | 60 / 45–60 |
60 fps на десктопе, 45–60 на телефонах.
[заполнить после Lighthouse и WebPageTest]
Демо-бот — сценарий, который целиком живёт в браузере. Каждый ответ клиента — событие: оно двигает диалог, обновляет карточку владельца и толкает чернила в сосуде 01.
Консоль — обычная форма и журнал с role="log". Команда /build выводит шесть шагов по 250 мс, и каждый [ok] заполняет ярус сосуда 02.
«Найдите дыру» не отправляет запросов в сеть: «сервер» — функция в браузере с тремя намеренными ошибками. Запаянный шов включает проверку, и тот же эксплойт получает 422.
План собирается из шаблонов по ключевым словам. Если указать адрес API, текст уходит в LLM, ответ проверяется по схеме, а без ответа за 8 секунд снова работает шаблон.
Все шесть сосудов строит одна функция makeVessel(dna): семь точек профиля, сплайн Catmull-Rom и LatheGeometry. Рёбра, ярусы и шов — модификаторы того же профиля. Значки в шапке нарисованы из тех же профилей.
Чернила — луч, который делает 28 шагов через цилиндр вокруг сосуда. Маска — тело вращения из профиля (текстура 1×96), плотность — шум fbm с искажением, два облака сливаются через smooth-min.
Переливание — 1 600 частиц на дуге от горлышка к горлышку. Прогресс скролла управляет лентой, уровнем чернил в обоих сосудах, дугой камеры и полосой линзы.
| Сосуд | height | bellyR | neckR | Особенность |
|---|---|---|---|---|
| 00 | 1.70 | 0.32 | 0.07 | — |
| 01 | 1.25 | 0.42 | 0.12 | 8 рёбер, глубина 0.035 |
| 02 | 1.40 | 0.38 | 0.16 | 4 яруса по 0.02 |
| 03 | 1.30 | 0.40 | 0.10 | шов под 38° |
| 04 | 1.10 | 0.52 | 0.06 | широкое тело, ветви |
| 06 | 1.35 | 0.40 | 0.13 | пустой |
Весь текст — в DOM, канвас помечен aria-hidden. Один h1 на страницу, у каждой главы — h2 и aria-labelledby.
Все демо — формы и кнопки и работают с клавиатуры; ленты сообщений — role="log", шов запаивается удержанием Enter или пробела. Фокус — двойное кольцо.
При prefers-reduced-motion нет плавной прокрутки, масок и полётов камеры: остаются короткие переходы на 200 мс.
Наполним его вашим проектом.
или напишите: job@dukhovskoj.ru
404